import sys
from common.login import login
from utl.data_in_out import Data

'''数据驱动模块'''

class DDT():

    def choose_module(sel,driver,cookie):
        '''根据用例选择运行的模块与方法'''
        #读取表格的用例，并获取用例的输入等信息
        sheet= Data().data_out()
        for values in range(1, sheet.nrows):  # 遍历表格的每一行
            param = sheet.row_values(values) #每一行是一个用例，执行一次
            # print(param)
            module = param[1]
            __import__('cases.test_'+module) #动态引入模块
            pyfiles = sys.modules['cases.test_'+module]  #把模块加载到内存
            class_name = getattr(pyfiles,param[2]) #找到对应py文件的class
            method = getattr(class_name(),param[3]) #找到并调用对应的方法
            # 将用例的输入分隔、参数化
            # print(param[4])
            lists = param[4].split('\n')
            # print(lists)
            listpa = [] #传入的参数列表
            # 根据模块的不同传入不同的参数
            paras = str(param[0]).split('.')
            expection = param[5]
            if module == 'item' :
                for info in lists:
                    # print(info)
                    if  '：' in info :
                        para = info.split('：')
                        # print(para)
                        # print(para[1])
                        listpa.append(para[1])
                # print(listpa)
                method(driver,listpa,paras[0],expection)
            if module == 'interface':
                for info in lists:
                    # print(info)
                    if ':' in info:
                        para = info.split(':')
                        # print(para)
                        # print(para[1])
                        listpa.append(para[1])
                # print(listpa)
                method(driver, listpa, paras[0], expection,cookie)
            if module == 'common':
                method(driver,paras[0])